﻿using System.Collections;

namespace ADTLists
{
    public abstract class ADT : IEnumerable
    {
        protected int size = 0;
        public int Size
        {
            get { return size; }
        }
        
        public abstract object GetElementFromStart();
        public abstract object GetElementFromEnd();
        public abstract object GetElementFromPosition(int position);

        public abstract void DelFromStart();
        public abstract void DelFromEnd();
        public abstract void DelFromPosition(int position);

        public abstract void AddToStart(object element);
        public abstract void AddToEnd(object element);
        public abstract void AddToPosition(object element, int position);

        public abstract void SetFirst(object element);
        public abstract void SetLast(object element);
        public abstract void SetToPosition(object element, int position);

        public abstract void Clear();

        public abstract IEnumerator GetEnumerator();
    }
}
